package org.darcy.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.darcy.entity.BizArticle;
import org.darcy.framework.generic.GenericDao;
import org.darcy.model.BizArticleModel;

import com.baomidou.mybatisplus.core.metadata.IPage;

public interface BizArticleMapper extends GenericDao<BizArticle> {

	/**
	 * 综合查询
	 */
	IPage<BizArticleModel> query(IPage<BizArticleModel> page, @Param(value = "p") BizArticleModel param);

	/**
	 * 统计指定文章的标签集合
	 *
	 * @param list
	 * @return
	 */
	List<BizArticleModel> listTagsByArticleId(List<Long> list);

	/**
	 * 获取文章详情，关联查询文章标签、文章类型
	 *
	 * @param id
	 * @return
	 */
	BizArticleModel getDetail(Long id);

	/**
	 * 获取上一篇和下一篇(是否可以通过get时查出来？ BizArticle中关联两个BizArticle：prev & next)
	 *
	 * @param insertTime
	 * @return
	 */
	List<BizArticleModel> getPrevAndNextArticles(Date insertTime);

	/**
	 * 获取热门文章
	 *
	 * @return
	 */
	List<BizArticleModel> listHotArticle();

	/**
	 * 是否存在文章
	 *
	 * @param id
	 * @return
	 */
	Integer isExist(Long id);

	/**
	 * 批量修改status
	 *
	 * @param list
	 * @param status
	 * @return
	 */
	int batchUpdateStatus(@Param("list") List<Long> list, @Param("status") boolean status);

}
